home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
EDITORS
/
LEDIT
/
!lEdit
/
l
/
ledit
next >
Wrap
Text File
|
1995-04-19
|
3KB
|
104 lines
;;; *** lEdit - Lisp Editor ***
;;; (c) 1995 Urs Bisang
;;; Version 0.1
;;;
;;; dieses file enthaelt die event loop + startup funktionen
;;; + code fuer baricon
;;;
;;; *** lade alle von ledit benoetigten files ***
(use "support")
(use "text")
(use "lispmode")
;;; *** globale variablen ***
(define *ledit-version* "0.1 [35]")
;; im moment gibt es nur einen mode und eine clickproc
(define *ledit-clicproc* lisp-new-editor-window)
;; im moment gibt es nur einen mode und eine loadproc
(define *ledit-loadproc* text-load-dragged-file)
;; im moment gibt es nur einen mode und eine dataopenproc
(define *ledit-dataopenproc* text-dataopen-proc)
;;; *** baricon menu ***
(define baricon-menu
(menu-new "lEdit" ">Info,Quit"))
(define (baricon-menu-handler item handle)
(cond
((menu-item item 1) (show-proginfo))
((menu-item item 2) (ledit-quit))
(else (ierr "unkown baricon menu entry"))))
;;; ** routinen zur behandlung der baricon menu eintraege **
;; verlasse ledit
(define (ledit-quit)
(if (ledit-query-quit)
(exit)))
;; pruefe ob modifizierte text buffer vorhanden sind
(define (ledit-query-quit)
(let ((n (text-modified-buffers)))
(if n
(let ((msg (if (= n 1)
"1 file modified"
(string-concat n " files modified")))
(field (dbox-popup "quit" msg)))
(cond
((= field 0) #t) ; discard
((= field 2) #f) ; cancel
(else #f))) ; otherwise
#t)))
;; zeige die proginfo dialog box an
(define (show-proginfo)
(let ((d (dbox-new "progInfo")))
(dbox-setfield d 4 *ledit-version*)
(dbox-show d)
(dbox-fillin d)
(dbox-dispose d)))
;; lade ein file von der command line
;; im moment gibt es nur einen mode und einen loader
(define (ledit-load-cmdline-file filename)
(lisp-load-file filename))
;;; *** das eigentliche hauptprogramm ***
;; initialisiere das wimp toolkit
(wtk-init "lEdit")
;; installiere handler fuer dataopen event
(wtk-dataopen-handler '(*ledit-dataopenproc*))
;; installiere den handler fuer prequit event
(wtk-prequit-handler '(if (ledit-query-quit) '(exit) #f))
;; initialisiere den flex memory manager
;; dies wird vom txt modul benoetigt.
(flex-init)
;; setze die environment variable fuer ledit
(txtopt-set-name "lEdit")
;; initialisiere das txt modul
(txt-init)
;; installiere icon auf der icon bar
(baricon "!lEdit"
clickproc: '(*ledit-clicproc*)
loadproc: '(*ledit-loadproc*)
menu: baricon-menu
menu-handler: baricon-menu-handler
menu-handle: nil)
;; ueberpruefe die command line ob ein file geladen werden muss
(if (> (length *cmdline-args*) 0)
(ledit-load-cmdline-file (symbol->string (car *cmdline-args*))))
;; starte die main event loop
(main-event-loop)